iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
Mobile Development

從零開始學習 Jetpack Compose系列 第 10

從零開始學習 Jetpack Compose Day9 - ConstrainLayout

  • 分享至 

  • xImage
  •  

ConstrainLayout

Jetpack Compose 的 ConstrainLayout跟傳統 Android 中的 ConstraintLayout一樣,可以依據畫面上的任何元件來約束各元件位置。那因為 Jetpack Compose 為宣告式UI所以並不會像傳統Android 設定id,所以官方另外提供兩種方式來建立id。

事前設定

要先在gradle implementation

libs.versions.toml

constraintlayout-compose = { group = "androidx.constraintlayout", name = "constraintlayout-compose", version = "1.0.1" }

build.gradle

    implementation(libs.constraintlayout.compose)

createRefs

透過createRefs 可以創建元件的參考,這樣就可以通過約束將它們彼此關聯。使用constrainAs 讓元件與createRefs綁定,搭配linkTo 綁定元件之間的約束。

https://raw.githubusercontent.com/jian-fu-hung/ithelp-2024/refs/heads/main/Images/Day9/%E6%88%AA%E5%9C%96%202024-09-24%20%E6%99%9A%E4%B8%8A11.12.36.png

動態設定佈局

ConstraintSet 是一種動態修改 ConstraintLayout的方法,它允許在運行時更新或切換佈局的約束條件,而不需要重新創建佈局,適合在動畫過程中改變元件位置或大小。

https://raw.githubusercontent.com/jian-fu-hung/ithelp-2024/refs/heads/main/Images/Day9/%E6%88%AA%E5%9C%96%202024-09-24%20%E6%99%9A%E4%B8%8A11.13.14.png

guideline

在Compose 的ConstrainLayout一樣可以設定guideline,只需要透過createGuidelineFrom,接著使用
constrainAs即可達成。

https://raw.githubusercontent.com/jian-fu-hung/ithelp-2024/refs/heads/main/Images/Day9/%E6%88%AA%E5%9C%96%202024-09-24%20%E6%99%9A%E4%B8%8A11.07.11.png


上一篇
從零開始學習 Jetpack Compose Day8 - Column、Row與Box
下一篇
從零開始學習 Jetpack Compose Day10 - Dialog
系列文
從零開始學習 Jetpack Compose12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言